<?php
class Register extends CI_Controller
{
	function __construct()
	{
		parent::__construct();
		$this->load->library('form_validation');
		$this->load->helper(array('url','form','security'));
		$this->load->helper('date');	
	}

	function index()
	{	
		$this->form_validation->set_rules('username', 'Username', 'required|min_length[5]|max_length[12]');
		$this->form_validation->set_rules('password', 'Password', 'required|matches[passconf]');
		$this->form_validation->set_rules('passconf', 'Password Confirmation', 'required');
		$this->form_validation->set_rules('Fnamn', 'Förnamn', 'required');
		$this->form_validation->set_rules('Enamn', 'Efternamn', 'required');
		$this->form_validation->set_rules('Pnummer', 'Personnummer', 'required|min_length[10]|max_length[10]');
		$this->form_validation->set_rules('Adress', 'Adress', 'required');
		$this->form_validation->set_rules('TelNummer', 'Telefonnummer', 'required');
		$this->form_validation->set_rules('Email', 'Email', 'required|valid_email');
		
			
		if ($this->form_validation->run() == FALSE)
		{
			//Kod som körs när det inte finns något att validera.
			$data['title']='Registrera dig';
			$data['message']='';
			$data['message2']='';
		
			$this->load->view('global/view_master_header',$data);
			$this->load->view('user/view_register_content');
			$this->load->view('global/view_master_footer');
		}
		else
		{
			//kod som körs om det finns något att validera.
			/*Sparar data i variabler som sedan skickas till model klassens metod för att skapa en ny annvändare*/
			$username=$this->input->post('username');
			$password=$this->input->post('password');
			$firstName=$this->input->post('Fnamn');
			$lastName=$this->input->post('Enamn');
			$personNumber=$this->input->post('Pnummer');
			$adress=$this->input->post('Adress');
			$telNumber=$this->input->post('TelNummer');
			$email=$this->input->post('Email');
			$confirmCode = random_string('alnum', 8);
			
			
			$this->load->model('user_model');
			
			//Kollar om användarnamn och email är lediga.
			$nameAvaliable = $this->user_model->CheckUsername($username);
			$emailNotAvaliable = $this->user_model->CheckIfEmailExists($email);
			
			if ($nameAvaliable == TRUE)
			
			{
				if($emailNotAvaliable == FALSE)
				{

					$registerData=$this->user_model->RegisterUser($username,$password,$firstName,$lastName,$personNumber,$adress,$telNumber,$email,$confirmCode);
			
					if (! $registerData)
					{
						//The regisration dident work code
					
							$data['title']='Fel';
							$data['message'] = 'Något gick fel med registreringen, försök igen.';
						
							$this->load->view('global/view_master_header',$data);
							$this->load->view('user/view_register_result' ,$data);
							$this->load->view('global/view_master_footer');
				
					}
					else
					{
					
						//Code for the confirmation email
							$emailConfig=array('newline'=>'\r\n','mailtype'=>'html');
							$emailData=array('registerLink'=>$confirmCode);
						
							$this->load->library('email');
							$this->email->initialize($emailConfig);
							$this->email->from('Studentbilar.se', 'Studentbilar.se');
							$this->email->to($email);
							$this->email->subject('Besök den här länken: LÄNK för att bekräfta din mail och aktivera ditt konto på Studentbilar.se' );
							$this->email->message($this->load->view('email/view_email_register',$emailData,TRUE));
							$this->email->send();
							
							
							
													//Registation success
							$data['title']='Registrerad';
							$data['message'] = 'Lyckad registrering! Var vänlig bekräfta din Email med hjälp av ett mail som har skickats till dig.';
							
							$this->load->view('global/view_master_header',$data);
							$this->load->view('view_register_result' ,$data);
							$this->load->view('global/view_master_footer');
							
						
					}
				}
				
				else
				{
					
					$data['title'] = "Emailen är upptagen";
					$data['message'] = "";
					$data['message2'] = "Det finns redan ett konto med den emailen";
				
		
		
					$this->load->view('global/view_master_header',$data);
					$this->load->view('view_register_content.php', $data);
					$this->load->view('global/view_master_footer');
					
				}
		}
		
		
			else
			{
		
			$data['title'] = "Namnet är upptaget";
			$data['message'] = "Namnet är upptaget";
			$data['message2'] = '';
		
			$this->load->view('global/view_master_header',$data);
			$this->load->view('view_register_content.php', $data);
			$this->load->view('global/view_master_footer');					
			}
		}
	}
	
	//TODO Kontrollera så man inte kan skicka in vad som helst.
	function ValidateEmail($ConfirmCode)
	{
		$this->load->model('User_model');
			
			
	    $activate = $this->User_model->ActivateUser($ConfirmCode);
			
		if ($activate == 1)
		{	
			echo "Ditt konto är nu aktivt";	
		}
		
		else
		{
			echo "Nått gick fel med aktiveringen";
		}
	}
}

?>